package proto

type GroupInfo struct {
	GroupId        uint   `json:"groupId"`
	GroupName      string `json:"groupName"`
	GroupAvatar    string `json:"groupAvatar"`
	GroupCreatorId uint   `json:"groupCreatorId"`
	MemberId       []uint `json:"memberId"`
}

type IMNormalGroupListReq struct {
	UserId uint `json:"userId"`
}

type IMNormalGroupListRes struct {
	Code        int    `json:"code"`
	GroupIdList []uint `json:"groupIdList"`
}

type IMGroupInfoListReq struct {
	GroupIdList []uint `json:"groupIdList"`
}

type IMGroupInfoListRes struct {
	Code          int         `json:"code"`
	GroupInfoList []GroupInfo `json:"groupInfoList"`
}

type IMGroupCreateReq struct {
	UserId       uint   `json:"userId"`
	GroupName    string `json:"groupName"`
	GroupAvatar  string `json:"groupAvatar"`
	MemberIdList []uint `json:"memberIdList"`
}

type IMGroupCreateRes struct {
	Code    int  `json:"code"`
	GroupId uint `json:"groupId"`
}

type IMGroupChangeMemberReq struct {
	GroupId      uint   `json:"groupId"`
	UserId       uint   `json:"userId"`
	MemberIdList []uint `json:"memberIdList"`
	ChangeType   int    `json:"changeType"`
}

type IMGroupChangeMemberRes struct {
	Code int `json:"code"`
}

type IMGroupChangeMemberNotify struct {
	GroupId           uint   `json:"groupId"`
	UserId            uint   `json:"userId"`
	ChangeType        int    `json:"changeType"`
	CurrentUserIdList []uint `json:"currentUserIdList"`
	ChangeUserIdLIst  []uint `json:"changeUserIdList"`
}

type IMGroupChangeAvatarReq struct {
	GroupId   uint   `json:"groupId"`
	UserId    uint   `json:"userId"`
	AvatarUrl string `json:"avatarUrl"`
}

type IMGroupChangeAvatarRes struct {
	Code int `json:"code"`
}

type IMGroupChangeAvatarNotify struct {
	GroupId   uint   `json:"groupId"`
	AvatarUrl string `json:"avatarUrl"`
}
